package filesearch;// FileSearcher类用于递归搜索文件
import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class searchfiles {
    // 私有成员变量，用于存储找到的文件路径
    private List<String> foundFiles = new ArrayList<>();

    /**
     * 递归搜索文件
     *
     * @param folder 初始搜索目录的File对象
     * @param fileName 要搜索的文件名（支持部分匹配）
     */
    public void searchFiles(File folder, String fileName) {
        // 获取目录下的所有文件和文件夹
        File[] files = folder.listFiles();
        // 检查目录是否为空
        if (files != null) {
            // 遍历目录下的每个文件或文件夹
            for (File file : files) {
                // 如果当前项是目录，则递归调用searchFiles方法
                if (file.isDirectory()) {
                    searchFiles(file, fileName);
                } else {
                    // 如果当前项是文件，并且文件名包含指定的名称
                    if (file.getName().contains(fileName)) {
                        // 将文件的路径添加到foundFiles列表中
                        foundFiles.add(file.getPath());
                        // 打印找到的文件路径
                        System.out.println("找到文件: " + file.getPath());
                    }
                }
            }
        }
    }
    /**
     * 获取找到的文件路径列表
     *
     * @return 包含找到的文件路径的List
     */
    public List<String> getFoundFiles() {
        return foundFiles;
    }
}
